/*
  Copyright (c) 2011-2013 NVIDIA Corporation
  Copyright (c) 2013 Nigel Stewart
  All rights reserved.

  Redistribution and use in source and binary forms, with or without modification,
  are permitted provided that the following conditions are met:

    Redistributions of source code must retain the above copyright notice, this
    list of conditions and the following disclaimer.

    Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
  OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#include "gtest/gtest.h"

#include <GL/Regal.h>

#include <string>

#include "RegalHelper.h"

using namespace std;

namespace {

// ====================================
// Regal::helper
// ====================================

TEST( RegalHelper, Get )
{
  {
    //
    // $ egrep '^[ ]+case GL_[A-Z0-9_]*:.*size =' src/regal/RegalHelper.cpp
    //   | grep -v sizeof | cut -b10-70 | gsed 's/:.*size =//'  | gsed 's/;//'
    //   | gsed 's/\([^ ]*\) \([^ ]*\)/      EXPECT_EQ(Regal::helper::size::get(\1),\2u);/'
    //

    EXPECT_EQ(Regal::helper::size::get(GL_ACCUM_ALPHA_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ACCUM_BLUE_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ACCUM_CLEAR_VALUE),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_ACCUM_GREEN_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ACCUM_RED_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ACTIVE_STENCIL_FACE_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ACTIVE_TEXTURE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ALIASED_LINE_WIDTH_RANGE),2u);
    EXPECT_EQ(Regal::helper::size::get(GL_ALIASED_POINT_SIZE_RANGE),2u);
    EXPECT_EQ(Regal::helper::size::get(GL_ALPHA_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ALPHA_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ALPHA_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ALPHA_TEST),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ALPHA_TEST_FUNC),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ALPHA_TEST_REF),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ARRAY_BUFFER_BINDING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ARRAY_ELEMENT_LOCK_COUNT_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ARRAY_ELEMENT_LOCK_FIRST_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ATTRIB_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_AUTO_NORMAL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_AUX_BUFFERS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLEND),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLEND_COLOR),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLEND_DST),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLEND_DST_ALPHA_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLEND_DST_RGB_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLEND_EQUATION),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLEND_EQUATION_ALPHA_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLEND_SRC),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLEND_SRC_ALPHA_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLEND_SRC_RGB_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLUE_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLUE_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_BLUE_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLAMP_FRAGMENT_COLOR_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLAMP_READ_COLOR_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLAMP_VERTEX_COLOR_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLIENT_ACTIVE_TEXTURE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLIENT_ATTRIB_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLIP_PLANE0),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLIP_PLANE1),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLIP_PLANE2),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLIP_PLANE3),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLIP_PLANE4),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CLIP_PLANE5),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_ARRAY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_ARRAY_BUFFER_BINDING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_ARRAY_COUNT_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_ARRAY_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_ARRAY_STRIDE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_ARRAY_TYPE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_CLEAR_VALUE),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_LOGIC_OP),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_MATERIAL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_MATERIAL_FACE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_MATERIAL_PARAMETER),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_MATRIX),16u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_MATRIX_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_SAMPLES_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_SUM_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_SUM_CLAMP_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_TABLE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_COLOR_WRITEMASK),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_COMPRESSED_TEXTURE_FORMATS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CONSTANT_COLOR0_NV),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_CONSTANT_COLOR1_NV),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_CONVOLUTION_1D),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CONVOLUTION_2D),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CULL_FACE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CULL_FACE_MODE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_COLOR),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_FOG_COORD),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_INDEX),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_MATRIX_NV),16u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_MATRIX_STACK_DEPTH_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_NORMAL),3u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_OCCLUSION_QUERY_ID_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_PROGRAM),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_RASTER_COLOR),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_RASTER_DISTANCE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_RASTER_INDEX),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_RASTER_POSITION),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_RASTER_POSITION_VALID),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_RASTER_SECONDARY_COLOR),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_RASTER_TEXTURE_COORDS),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_SECONDARY_COLOR),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_CURRENT_TEXTURE_COORDS),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_BOUNDS_EXT),2u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_BOUNDS_TEST_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_BUFFER_FLOAT_MODE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_CLEAR_VALUE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_FUNC),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_RANGE),2u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_TEST),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DEPTH_WRITEMASK),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DITHER),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DOUBLEBUFFER),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER0),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER1),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER10),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER11),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER12),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER13),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER14),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER15),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER2),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER3),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER4),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER5),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER6),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER7),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER8),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DRAW_BUFFER9),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DS_BIAS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DS_SCALE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DT_BIAS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_DT_SCALE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_EDGE_FLAG),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_EDGE_FLAG_ARRAY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ELEMENT_ARRAY_BUFFER_BINDING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_EDGE_FLAG_ARRAY_COUNT_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_EDGE_FLAG_ARRAY_STRIDE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FEEDBACK_BUFFER_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FEEDBACK_BUFFER_TYPE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FLOAT_CLEAR_COLOR_VALUE_NV),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_FLOAT_RGBA_MODE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_COLOR),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_COORD_ARRAY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_COORD_ARRAY_STRIDE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_COORD_ARRAY_TYPE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_COORD_SRC),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_DENSITY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_DISTANCE_MODE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_END),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_HINT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_INDEX),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_MODE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FOG_START),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FRAGMENT_PROGRAM_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FRAGMENT_PROGRAM_BINDING_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FRAGMENT_PROGRAM_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FRAGMENT_SHADER),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FRAGMENT_SHADER_DERIVATIVE_HINT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FRAMEBUFFER_BINDING_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FRAMEBUFFER_SRGB_CAPABLE_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FRAMEBUFFER_SRGB_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_FRONT_FACE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_GENERATE_MIPMAP_HINT_SGIS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_GEOMETRY_PROGRAM_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_GEOMETRY_SHADER_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_GREEN_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_GREEN_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_GREEN_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_HISTOGRAM),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_HI_BIAS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_HI_SCALE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_ARRAY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_ARRAY_BUFFER_BINDING_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_ARRAY_COUNT_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_ARRAY_STRIDE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_ARRAY_TYPE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_CLEAR_VALUE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_MODE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_OFFSET),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_SHIFT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_INDEX_WRITEMASK),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT0),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT1),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT2),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT3),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT4),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT5),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT6),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT7),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHTING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT_MODEL_AMBIENT),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT_MODEL_COLOR_CONTROL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT_MODEL_LOCAL_VIEWER),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIGHT_MODEL_TWO_SIDE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LINE_SMOOTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LINE_SMOOTH_HINT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LINE_STIPPLE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LINE_STIPPLE_PATTERN),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LINE_STIPPLE_REPEAT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LINE_WIDTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LINE_WIDTH_GRANULARITY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LINE_WIDTH_RANGE),2u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIST_BASE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIST_INDEX),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LIST_MODE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LOGIC_OP),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LOGIC_OP_MODE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LO_BIAS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_LO_SCALE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAGNITUDE_BIAS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAGNITUDE_SCALE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAJOR_VERSION),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_COLOR_4),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_GRID_DOMAIN),2u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_GRID_SEGMENTS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_INDEX),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_NORMAL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_TEXTURE_COORD_1),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_TEXTURE_COORD_2),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_TEXTURE_COORD_3),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_TEXTURE_COORD_4),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_VERTEX_3),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP1_VERTEX_4),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_COLOR_4),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_GRID_DOMAIN),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_GRID_SEGMENTS),2u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_INDEX),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_NORMAL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_TEXTURE_COORD_1),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_TEXTURE_COORD_2),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_TEXTURE_COORD_3),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_TEXTURE_COORD_4),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_VERTEX_3),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP2_VERTEX_4),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP_COLOR),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAP_STENCIL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MATRIX_MODE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_3D_TEXTURE_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_ARRAY_TEXTURE_LAYERS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_ATTRIB_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_BINDABLE_UNIFORM_SIZE_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_CLIENT_ATTRIB_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_CLIP_PLANES),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_COLOR_ATTACHMENTS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_COLOR_MATRIX_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_COMBINED_UNIFORM_BLOCKS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_CONVOLUTION_HEIGHT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_CONVOLUTION_WIDTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_CUBE_MAP_TEXTURE_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_DRAW_BUFFERS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_DUAL_SOURCE_DRAW_BUFFERS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_EVAL_ORDER),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_FRAGMENT_UNIFORM_BLOCKS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_GENERAL_COMBINERS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_GEOMETRY_UNIFORM_BLOCKS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_LIGHTS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_LIST_NESTING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_MODELVIEW_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_NAME_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_PIXEL_MAP_TABLE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_PROJECTION_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_RECTANGLE_TEXTURE_SIZE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_RENDERBUFFER_SIZE_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_SAMPLES_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_SAMPLE_MASK_WORDS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_SERVER_WAIT_TIMEOUT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_SHININESS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_SPOT_EXPONENT_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_SUBROUTINES),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TEXTURE_BUFFER_SIZE_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TEXTURE_COORDS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TEXTURE_IMAGE_UNITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TEXTURE_LOD_BIAS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TEXTURE_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TEXTURE_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TEXTURE_UNITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TRACK_MATRICES_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_UNIFORM_BLOCK_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_UNIFORM_BUFFER_BINDINGS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_VARYING_FLOATS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_VERTEX_ATTRIBS_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_VERTEX_UNIFORM_BLOCKS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_VERTEX_UNIFORM_COMPONENTS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_VERTEX_VARYING_COMPONENTS_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MAX_VIEWPORT_DIMS),2u);
    EXPECT_EQ(Regal::helper::size::get(GL_MINMAX),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MINOR_VERSION),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MIN_SAMPLE_SHADING_VALUE_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MODELVIEW_MATRIX),16u);
    EXPECT_EQ(Regal::helper::size::get(GL_MODELVIEW_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MULTISAMPLE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_MULTISAMPLE_FILTER_HINT_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NAME_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NORMALIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NORMAL_ARRAY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NORMAL_ARRAY_BUFFER_BINDING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NORMAL_ARRAY_COUNT_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NORMAL_ARRAY_STRIDE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NORMAL_ARRAY_TYPE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NUM_COMPRESSED_TEXTURE_FORMATS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NUM_EXTENSIONS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NUM_GENERAL_COMBINERS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_NUM_SHADING_LANGUAGE_VERSIONS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_OCCLUSION_TEST_HP),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_OCCLUSION_TEST_RESULT_HP),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PACK_ALIGNMENT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PACK_IMAGE_HEIGHT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PACK_LSB_FIRST),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PACK_ROW_LENGTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PACK_SKIP_IMAGES),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PACK_SKIP_PIXELS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PACK_SKIP_ROWS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PACK_SWAP_BYTES),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PERSPECTIVE_CORRECTION_HINT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PER_STAGE_CONSTANTS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_COUNTER_BITS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_MAP_A_TO_A_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_MAP_B_TO_B_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_MAP_G_TO_G_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_MAP_I_TO_A_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_MAP_I_TO_B_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_MAP_I_TO_G_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_MAP_I_TO_I_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_MAP_I_TO_R_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_MAP_R_TO_R_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_MAP_S_TO_S_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_PACK_BUFFER_BINDING_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PIXEL_UNPACK_BUFFER_BINDING_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_DISTANCE_ATTENUATION),3u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_FADE_THRESHOLD_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_SIZE_GRANULARITY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_SIZE_MAX),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_SIZE_MIN),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_SIZE_RANGE),2u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_SMOOTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_SMOOTH_HINT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_SPRITE_COORD_ORIGIN),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POINT_SPRITE_R_MODE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POLYGON_MODE),2u);
    EXPECT_EQ(Regal::helper::size::get(GL_POLYGON_OFFSET_FACTOR),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POLYGON_OFFSET_FILL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POLYGON_OFFSET_UNITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POLYGON_SMOOTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POLYGON_SMOOTH_HINT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POLYGON_STIPPLE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_COLOR_MATRIX_ALPHA_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_COLOR_MATRIX_ALPHA_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_COLOR_MATRIX_BLUE_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_COLOR_MATRIX_BLUE_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_COLOR_MATRIX_COLOR_TABLE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_COLOR_MATRIX_GREEN_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_COLOR_MATRIX_GREEN_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_COLOR_MATRIX_RED_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_COLOR_MATRIX_RED_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_CONVOLUTION_ALPHA_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_CONVOLUTION_ALPHA_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_CONVOLUTION_BLUE_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_CONVOLUTION_BLUE_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_CONVOLUTION_COLOR_TABLE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_CONVOLUTION_GREEN_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_CONVOLUTION_GREEN_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_CONVOLUTION_RED_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_POST_CONVOLUTION_RED_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PROGRAM_ERROR_POSITION_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PROGRAM_POINT_SIZE_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PROJECTION_MATRIX),16u);
    EXPECT_EQ(Regal::helper::size::get(GL_PROJECTION_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_PROVOKING_VERTEX),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RASTERIZER_DISCARD),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_READ_BUFFER),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_READ_FRAMEBUFFER_BINDING_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RED_BIAS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RED_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RED_SCALE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RENDERBUFFER_BINDING_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RENDER_MODE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RESCALE_NORMAL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RGBA_FLOAT_MODE_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RGBA_INTEGER_MODE_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RGBA_MODE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_RGBA_SIGNED_COMPONENTS_EXT),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_SAMPLES),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SAMPLE_ALPHA_TO_COVERAGE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SAMPLE_ALPHA_TO_ONE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SAMPLE_BUFFERS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SAMPLE_COVERAGE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SAMPLE_COVERAGE_INVERT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SAMPLE_COVERAGE_VALUE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SAMPLE_MASK_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SAMPLE_SHADING_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SAMPLER_BINDING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SCISSOR_BOX),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_SCISSOR_TEST),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SECONDARY_COLOR_ARRAY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SECONDARY_COLOR_ARRAY_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SECONDARY_COLOR_ARRAY_STRIDE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SECONDARY_COLOR_ARRAY_TYPE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SELECTION_BUFFER_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SEPARABLE_2D),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SHADE_MODEL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_BACK_FAIL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_BACK_FUNC),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_BACK_PASS_DEPTH_FAIL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_BACK_PASS_DEPTH_PASS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_BACK_REF),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_BACK_VALUE_MASK),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_BACK_WRITEMASK),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_CLEAR_VALUE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_FAIL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_FUNC),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_PASS_DEPTH_FAIL),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_PASS_DEPTH_PASS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_REF),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_TEST),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_TEST_TWO_SIDE_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_VALUE_MASK),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STENCIL_WRITEMASK),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_STEREO),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_SUBPIXEL_BITS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_1D),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_2D),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_3D),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BINDING_1D),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BINDING_1D_ARRAY_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BINDING_2D),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BINDING_2D_ARRAY_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BINDING_3D),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BINDING_BUFFER_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BINDING_CUBE_MAP),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BINDING_CUBE_MAP_ARRAY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BINDING_RECTANGLE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BINDING_RENDERBUFFER_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BUFFER_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_BUFFER_FORMAT_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_COMPRESSION_HINT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_COORD_ARRAY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_COORD_ARRAY_COUNT_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_COORD_ARRAY_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_COORD_ARRAY_STRIDE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_COORD_ARRAY_TYPE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_CUBE_MAP),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_GEN_Q),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_GEN_R),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_GEN_S),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_GEN_T),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_MATRIX),16u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_RECTANGLE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TEXTURE_STACK_DEPTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TIMESTAMP),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSFORM_FEEDBACK_ATTRIBS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSFORM_FEEDBACK_BINDING_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSFORM_FEEDBACK_BUFFER_BINDING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSFORM_FEEDBACK_BUFFER_MODE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSPOSE_COLOR_MATRIX),16u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSPOSE_CURRENT_MATRIX_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSPOSE_MODELVIEW_MATRIX),16u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSPOSE_PROJECTION_MATRIX),16u);
    EXPECT_EQ(Regal::helper::size::get(GL_TRANSPOSE_TEXTURE_MATRIX),16u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNIFORM_BUFFER_BINDING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNIFORM_BUFFER_BINDING_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNPACK_ALIGNMENT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNPACK_IMAGE_HEIGHT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNPACK_LSB_FIRST),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNPACK_ROW_LENGTH),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNPACK_SKIP_IMAGES),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNPACK_SKIP_PIXELS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNPACK_SKIP_ROWS),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_UNPACK_SWAP_BYTES),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_ARRAY),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_ARRAY_BINDING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_ARRAY_BUFFER_BINDING),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_ARRAY_COUNT_EXT),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_ARRAY_SIZE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_ARRAY_STRIDE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_ARRAY_TYPE),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_PROGRAM_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_PROGRAM_BINDING_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_PROGRAM_TWO_SIDE_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VERTEX_SHADER),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VIBRANCE_BIAS_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VIBRANCE_SCALE_NV),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_VIEWPORT),4u);
    EXPECT_EQ(Regal::helper::size::get(GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ZOOM_X),1u);
    EXPECT_EQ(Regal::helper::size::get(GL_ZOOM_Y),1u);
  }
}

}
